﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using DTO_MechSys;

namespace DAL_MechSys
{
    public class DALOrdemDetalheServico : DALBase
    {

        public DTOOrdemDetalheServico Buscar(int OrdemDetalheServicoID)
        {
            DTOOrdemDetalheServico dtoOrdemDetalheServico = new DTOOrdemDetalheServico();
            try
            {
                string storedProssidere = "sp_BuscarOrdemDetalheServico";
                SqlParameter[] parameters =

                        {                    
                           new SqlParameter("@OrdemDetalheServicoID", OrdemDetalheServicoID)                                    
                        }; 
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere, parameters))
                {
                    while (sqlDataReader.Read())
                    {
                        dtoOrdemDetalheServico.Desconto = (double.Parse(sqlDataReader["Desconto"].ToString()));
                        dtoOrdemDetalheServico.Valor = (double.Parse(sqlDataReader["Valor"].ToString()));
                        dtoOrdemDetalheServico.FuncionarioID = (Int32.Parse(sqlDataReader["FuncionarioID"].ToString()));
                        dtoOrdemDetalheServico.OrdemDetalheServicoID = (Int32.Parse(sqlDataReader["OrdemDetalheServicoID"].ToString()));
                        dtoOrdemDetalheServico.OrdemID = (Int32.Parse(sqlDataReader["OrdemID"].ToString()));
                        dtoOrdemDetalheServico.OrdemPendenteID = (Int32.Parse(sqlDataReader["OrdemPendenteID"].ToString()));
                        dtoOrdemDetalheServico.ServicoID = (Int32.Parse(sqlDataReader["ServicoID"].ToString()));
                        dtoOrdemDetalheServico.Status = (bool.Parse(sqlDataReader["Status"].ToString()));
                    }
                }

            }
            catch (SqlException)
            {
                throw;
            }
                return dtoOrdemDetalheServico;
            
        }

        public void ExcluirID0()
        {
            try
            {
                string storedProssidere = "sp_ExcluirOrdemDetalheServicoID0";
                ExecuteNonQuery(storedProssidere);

            }

            catch (SqlException)
            {
                throw;
            }
        }       

        public void Excluir(int OrdemDetalheServicoID)
        {
            try
            {
                string storedProssidere = "sp_ExcluirOrdemDetalheServico";
                SqlParameter[] parameters =

                        {                    
                           new SqlParameter("@OrdemDetalheServicoID", OrdemDetalheServicoID)                                    
                        };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }

        public void Inserir(DTOOrdemDetalheServico dtoOrdemDetalheServico)
        {
            try
            {
                string storedProssidere = "sp_InserirOrdemDetalheServico";
                SqlParameter[] parameters =
                
                { 
                   new SqlParameter("@OrdemID", dtoOrdemDetalheServico.OrdemID),
                   new SqlParameter("@OrdemPendenteID", dtoOrdemDetalheServico.OrdemPendenteID),
                   new SqlParameter("@ServicoID", dtoOrdemDetalheServico.ServicoID),
                   new SqlParameter("@PrecoUnitario", dtoOrdemDetalheServico.Valor),                       
                   new SqlParameter("@Desconto", dtoOrdemDetalheServico.Desconto),
                   new SqlParameter("@FuncionarioID", dtoOrdemDetalheServico.FuncionarioID) 

                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
            }
        }

        public void Atualizar(DTOOrdemDetalheServico dtoOrdemDetalheServico)
        {
            try
            {
                string storedProssidere = "sp_AtualizarOrdemDetalheServico";
                SqlParameter[] parameters =
                {                  
                   new SqlParameter("@OrdemID", dtoOrdemDetalheServico.OrdemID),
                   new SqlParameter("@OrdemPendenteID", dtoOrdemDetalheServico.OrdemPendenteID),
                   new SqlParameter("@ServicoID", dtoOrdemDetalheServico.ServicoID),
                   new SqlParameter("@PrecoUnitario", dtoOrdemDetalheServico.Valor),                       
                   new SqlParameter("@Desconto", dtoOrdemDetalheServico.Desconto),
                   new SqlParameter("@FuncionarioID", dtoOrdemDetalheServico.FuncionarioID),
                   new SqlParameter("@OrdemDetalheServicoID", dtoOrdemDetalheServico.OrdemDetalheServicoID),
                   new SqlParameter("@Status", dtoOrdemDetalheServico.Status)
                };
                ExecuteNonQuery(storedProssidere, parameters);

            }

            catch (SqlException)
            {
                throw;
            }
        }
    }
}
